#include <QPair>
#include <QList>
#include <Field.h>
#include "player.h"
#include "playerhuman.h"
#include "GameView.h"
struct Turn {
	Player *player;
	QPair<int, int> cell;
};

class GameModel {
public:
	GameModel();
	~GameModel();
	void clear();
	void prepareGame();
	void startGame();
	bool isFinished();
	void makeTurn();
	GameView getView();
	Field getField();
	QList<Player*> getPlayers();
	QList<Turn> getLog();
	Player *getWinner();
	Turn getLastTurn();
	void setView(GameView newView);

private:	
	
	GameView view;
	Field gameField;
	QList<Player*> players;
	QList<Turn> log;
	Player *winner;
	Turn lastTurn; 
};